package com.dci.intellij.dbn.language.sql.dialect.postgres;

import com.intellij.lexer.FlexLexer;
import com.intellij.psi.tree.IElementType;
import com.dci.intellij.dbn.language.sql.SQLLanguage;
import com.dci.intellij.dbn.language.common.TokenTypeBundle;

%%

%class PostgresSQLParserFlexLexer
%implements FlexLexer
%public
%pack
%final
%unicode
%ignorecase
%function advance
%type IElementType
%eof{ return;
%eof}

%{
    private int braceCounter = 0;
    private TokenTypeBundle tt;
    public PostgresSQLParserFlexLexer(TokenTypeBundle tt) {
        this.tt = tt;
    }
%}

WHITE_SPACE= {white_space_char}|{line_terminator}
line_terminator = \r|\n|\r\n
input_character = [^\r\n]
white_space = [ \t\f]
white_space_char= [ \n\r\t\f]
ws  = {WHITE_SPACE}+
wso = {WHITE_SPACE}*

comment_tail =([^"*"]*("*"+[^"*""/"])?)*("*"+"/")?
BLOCK_COMMENT=("/*"[^]{comment_tail})|"/*"
LINE_COMMENT = "--" {input_character}*

IDENTIFIER = [:jletter:] [:jletterdigit:]*
QUOTED_IDENTIFIER = "\""[^\"]*"\""?

CHARSET ="armscii8"|"ascii"|"big5"|"binary"|"cp1250"|"cp1251"|"cp1256"|"cp1257"|"cp850"|"cp852"|"cp866"|"cp932"|"dec8"|"eucjpms"|"euckr"|"gb2312"|"gbk"|"geostd8"|"greek"|"hebrew"|"hp8"|"keybcs2"|"koi8r"|"koi8u"|"latin1"|"latin2"|"latin5"|"latin7"|"macce"|"macroman"|"sjis"|"swe7"|"tis620"|"ucs2"|"ujis"|"utf8"

string_simple_quoted      = "'"([^\']|"''"|{WHITE_SPACE})*"'"?
STRING = ("n"|"_"{CHARSET})?{wso}{string_simple_quoted}

sign = "+"|"-"
digit = [0-9]
INTEGER = {digit}+("e"{sign}?{digit}+)?
NUMBER = {INTEGER}?"."{digit}+(("e"{sign}?{digit}+)|(("f"|"d"){ws}))?

VARIABLE = ":"{wso}({IDENTIFIER}|{INTEGER})

%state DIV
%%

{WHITE_SPACE}+   { return tt.getSharedTokenTypes().getWhiteSpace(); }

{BLOCK_COMMENT}      { return tt.getSharedTokenTypes().getBlockComment(); }
{LINE_COMMENT}       { return tt.getSharedTokenTypes().getLineComment(); }

{VARIABLE}    { return tt.getSharedTokenTypes().getVariable(); }      
{INTEGER}     { return tt.getSharedTokenTypes().getInteger(); }
{NUMBER}      { return tt.getSharedTokenTypes().getNumber(); }
{STRING}      { return tt.getSharedTokenTypes().getString(); }

"||" {return tt.getOperatorTokenType(0);}
":=" {return tt.getOperatorTokenType(1);}
"::" {return tt.getOperatorTokenType(3);}

"("{wso}"+"{wso}")"  {return tt.getTokenType("CT_OUTER_JOIN");}

"@" {return tt.getCharacterTokenType(0);}
":" {return tt.getCharacterTokenType(1);}
"," {return tt.getCharacterTokenType(2);}
"." {return tt.getCharacterTokenType(3);}
"=" {return tt.getCharacterTokenType(4);}
"!" {return tt.getCharacterTokenType(5);}
">" {return tt.getCharacterTokenType(6);}
"#" {return tt.getCharacterTokenType(7);}
"[" {return tt.getCharacterTokenType(8);}
"{" {return tt.getCharacterTokenType(9);}
"(" {return tt.getCharacterTokenType(10);}
"<" {return tt.getCharacterTokenType(11);}
"-" {return tt.getCharacterTokenType(12);}
"%" {return tt.getCharacterTokenType(13);}
"+" {return tt.getCharacterTokenType(14);}
"]" {return tt.getCharacterTokenType(15);}
"}" {return tt.getCharacterTokenType(16);}
")" {return tt.getCharacterTokenType(17);}
";" {return tt.getCharacterTokenType(18);}
"/" {return tt.getCharacterTokenType(19);}
"*" {return tt.getCharacterTokenType(20);}
"|" {return tt.getCharacterTokenType(21);}
"&" {return tt.getCharacterTokenType(22);}



"array" {return tt.getDataTypeTokenType(0);}
"bigint" {return tt.getDataTypeTokenType(1);}
"bigserial" {return tt.getDataTypeTokenType(2);}
"bit"{ws}"varying" {return tt.getDataTypeTokenType(3);}
"bool" {return tt.getDataTypeTokenType(4);}
"boolean" {return tt.getDataTypeTokenType(5);}
"box" {return tt.getDataTypeTokenType(6);}
"bytea" {return tt.getDataTypeTokenType(7);}
"char" {return tt.getDataTypeTokenType(8);}
"character" {return tt.getDataTypeTokenType(9);}
"character"{ws}"varying" {return tt.getDataTypeTokenType(10);}
"cid" {return tt.getDataTypeTokenType(11);}
"cidr" {return tt.getDataTypeTokenType(12);}
"circle" {return tt.getDataTypeTokenType(13);}
"date" {return tt.getDataTypeTokenType(14);}
"decimal" {return tt.getDataTypeTokenType(15);}
"double_precision" {return tt.getDataTypeTokenType(16);}
"inet" {return tt.getDataTypeTokenType(17);}
"int" {return tt.getDataTypeTokenType(18);}
"int2" {return tt.getDataTypeTokenType(19);}
"int2vector" {return tt.getDataTypeTokenType(20);}
"int4" {return tt.getDataTypeTokenType(21);}
"int8" {return tt.getDataTypeTokenType(22);}
"integer" {return tt.getDataTypeTokenType(23);}
"interval" {return tt.getDataTypeTokenType(24);}
"json" {return tt.getDataTypeTokenType(25);}
"line" {return tt.getDataTypeTokenType(26);}
"lseg" {return tt.getDataTypeTokenType(27);}
"macaddr" {return tt.getDataTypeTokenType(28);}
"money" {return tt.getDataTypeTokenType(29);}
"name" {return tt.getDataTypeTokenType(30);}
"numeric" {return tt.getDataTypeTokenType(31);}
"oid" {return tt.getDataTypeTokenType(32);}
"path" {return tt.getDataTypeTokenType(33);}
"point" {return tt.getDataTypeTokenType(34);}
"polygon" {return tt.getDataTypeTokenType(35);}
"real" {return tt.getDataTypeTokenType(36);}
"serial" {return tt.getDataTypeTokenType(37);}
"serial8" {return tt.getDataTypeTokenType(38);}
"smallint" {return tt.getDataTypeTokenType(39);}
"smallserial" {return tt.getDataTypeTokenType(40);}
"text" {return tt.getDataTypeTokenType(41);}
"tid" {return tt.getDataTypeTokenType(42);}
"time" {return tt.getDataTypeTokenType(43);}
"time"{ws}"with"{ws}"time"{ws}"zone" {return tt.getDataTypeTokenType(44);}
"time"{ws}"without"{ws}"time"{ws}"zone" {return tt.getDataTypeTokenType(45);}
"timestamp" {return tt.getDataTypeTokenType(46);}
"timestamp"{ws}"with"{ws}"time"{ws}"zone" {return tt.getDataTypeTokenType(47);}
"timestamp"{ws}"without"{ws}"time"{ws}"zone" {return tt.getDataTypeTokenType(48);}
"tsquery" {return tt.getDataTypeTokenType(49);}
"tsvector" {return tt.getDataTypeTokenType(50);}
"uuid" {return tt.getDataTypeTokenType(51);}
"varbit" {return tt.getDataTypeTokenType(52);}
"varchar" {return tt.getDataTypeTokenType(53);}
"xid" {return tt.getDataTypeTokenType(54);}
"xml" {return tt.getDataTypeTokenType(55);}






"a" {return tt.getKeywordTokenType(0);}
"abort" {return tt.getKeywordTokenType(1);}
"absent" {return tt.getKeywordTokenType(2);}
"absolute" {return tt.getKeywordTokenType(3);}
"access" {return tt.getKeywordTokenType(4);}
"according" {return tt.getKeywordTokenType(5);}
"action" {return tt.getKeywordTokenType(6);}
"ada" {return tt.getKeywordTokenType(7);}
"add" {return tt.getKeywordTokenType(8);}
"admin" {return tt.getKeywordTokenType(9);}
"after" {return tt.getKeywordTokenType(10);}
"aggregate" {return tt.getKeywordTokenType(11);}
"all" {return tt.getKeywordTokenType(12);}
"allocate" {return tt.getKeywordTokenType(13);}
"also" {return tt.getKeywordTokenType(14);}
"alter" {return tt.getKeywordTokenType(15);}
"always" {return tt.getKeywordTokenType(16);}
"analyse" {return tt.getKeywordTokenType(17);}
"analyze" {return tt.getKeywordTokenType(18);}
"and" {return tt.getKeywordTokenType(19);}
"any" {return tt.getKeywordTokenType(20);}
"are" {return tt.getKeywordTokenType(21);}
"array_max_cardinality" {return tt.getKeywordTokenType(22);}
"as" {return tt.getKeywordTokenType(23);}
"asc" {return tt.getKeywordTokenType(24);}
"asensitive" {return tt.getKeywordTokenType(25);}
"assertion" {return tt.getKeywordTokenType(26);}
"assignment" {return tt.getKeywordTokenType(27);}
"asymmetric" {return tt.getKeywordTokenType(28);}
"at" {return tt.getKeywordTokenType(29);}
"atomic" {return tt.getKeywordTokenType(30);}
"attribute" {return tt.getKeywordTokenType(31);}
"attributes" {return tt.getKeywordTokenType(32);}
"authorization" {return tt.getKeywordTokenType(33);}
"backward" {return tt.getKeywordTokenType(34);}
"base64" {return tt.getKeywordTokenType(35);}
"before" {return tt.getKeywordTokenType(36);}
"begin" {return tt.getKeywordTokenType(37);}
"begin_frame" {return tt.getKeywordTokenType(38);}
"begin_partition" {return tt.getKeywordTokenType(39);}
"bernoulli" {return tt.getKeywordTokenType(40);}
"between" {return tt.getKeywordTokenType(41);}
"binary" {return tt.getKeywordTokenType(42);}
"blob" {return tt.getKeywordTokenType(43);}
"blocked" {return tt.getKeywordTokenType(44);}
"bom" {return tt.getKeywordTokenType(45);}
"both" {return tt.getKeywordTokenType(46);}
"breadth" {return tt.getKeywordTokenType(47);}
"by" {return tt.getKeywordTokenType(48);}
"c" {return tt.getKeywordTokenType(49);}
"cache" {return tt.getKeywordTokenType(50);}
"call" {return tt.getKeywordTokenType(51);}
"called" {return tt.getKeywordTokenType(52);}
"cardinality" {return tt.getKeywordTokenType(53);}
"cascade" {return tt.getKeywordTokenType(54);}
"cascaded" {return tt.getKeywordTokenType(55);}
"case" {return tt.getKeywordTokenType(56);}
"cast" {return tt.getKeywordTokenType(57);}
"catalog" {return tt.getKeywordTokenType(58);}
"catalog_name" {return tt.getKeywordTokenType(59);}
"chain" {return tt.getKeywordTokenType(60);}
"characteristics" {return tt.getKeywordTokenType(61);}
"characters" {return tt.getKeywordTokenType(62);}
"character_length" {return tt.getKeywordTokenType(63);}
"character_set_catalog" {return tt.getKeywordTokenType(64);}
"character_set_name" {return tt.getKeywordTokenType(65);}
"character_set_schema" {return tt.getKeywordTokenType(66);}
"check" {return tt.getKeywordTokenType(67);}
"checkpoint" {return tt.getKeywordTokenType(68);}
"class" {return tt.getKeywordTokenType(69);}
"class_origin" {return tt.getKeywordTokenType(70);}
"clob" {return tt.getKeywordTokenType(71);}
"close" {return tt.getKeywordTokenType(72);}
"cluster" {return tt.getKeywordTokenType(73);}
"coalesce" {return tt.getKeywordTokenType(74);}
"cobol" {return tt.getKeywordTokenType(75);}
"collate" {return tt.getKeywordTokenType(76);}
"collation" {return tt.getKeywordTokenType(77);}
"collation_catalog" {return tt.getKeywordTokenType(78);}
"collation_name" {return tt.getKeywordTokenType(79);}
"collation_schema" {return tt.getKeywordTokenType(80);}
"collect" {return tt.getKeywordTokenType(81);}
"column" {return tt.getKeywordTokenType(82);}
"columns" {return tt.getKeywordTokenType(83);}
"column_name" {return tt.getKeywordTokenType(84);}
"command_function" {return tt.getKeywordTokenType(85);}
"command_function_code" {return tt.getKeywordTokenType(86);}
"comment" {return tt.getKeywordTokenType(87);}
"comments" {return tt.getKeywordTokenType(88);}
"commit" {return tt.getKeywordTokenType(89);}
"committed" {return tt.getKeywordTokenType(90);}
"concurrently" {return tt.getKeywordTokenType(91);}
"condition" {return tt.getKeywordTokenType(92);}
"condition_number" {return tt.getKeywordTokenType(93);}
"configuration" {return tt.getKeywordTokenType(94);}
"connect" {return tt.getKeywordTokenType(95);}
"connection" {return tt.getKeywordTokenType(96);}
"connection_name" {return tt.getKeywordTokenType(97);}
"constraint" {return tt.getKeywordTokenType(98);}
"constraints" {return tt.getKeywordTokenType(99);}
"constraint_catalog" {return tt.getKeywordTokenType(100);}
"constraint_name" {return tt.getKeywordTokenType(101);}
"constraint_schema" {return tt.getKeywordTokenType(102);}
"constructor" {return tt.getKeywordTokenType(103);}
"contains" {return tt.getKeywordTokenType(104);}
"content" {return tt.getKeywordTokenType(105);}
"continue" {return tt.getKeywordTokenType(106);}
"control" {return tt.getKeywordTokenType(107);}
"conversion" {return tt.getKeywordTokenType(108);}
"copy" {return tt.getKeywordTokenType(109);}
"corr" {return tt.getKeywordTokenType(110);}
"corresponding" {return tt.getKeywordTokenType(111);}
"cost" {return tt.getKeywordTokenType(112);}
"covar_pop" {return tt.getKeywordTokenType(113);}
"covar_samp" {return tt.getKeywordTokenType(114);}
"create" {return tt.getKeywordTokenType(115);}
"cross" {return tt.getKeywordTokenType(116);}
"csv" {return tt.getKeywordTokenType(117);}
"cube" {return tt.getKeywordTokenType(118);}
"current" {return tt.getKeywordTokenType(119);}
"current_default_transform_group" {return tt.getKeywordTokenType(120);}
"current_path" {return tt.getKeywordTokenType(121);}
"current_role" {return tt.getKeywordTokenType(122);}
"current_row" {return tt.getKeywordTokenType(123);}
"current_transform_group_for_type" {return tt.getKeywordTokenType(124);}
"cursor" {return tt.getKeywordTokenType(125);}
"cursor_name" {return tt.getKeywordTokenType(126);}
"cycle" {return tt.getKeywordTokenType(127);}
"data" {return tt.getKeywordTokenType(128);}
"database" {return tt.getKeywordTokenType(129);}
"datalink" {return tt.getKeywordTokenType(130);}
"datetime_interval_code" {return tt.getKeywordTokenType(131);}
"datetime_interval_precision" {return tt.getKeywordTokenType(132);}
"day" {return tt.getKeywordTokenType(133);}
"db" {return tt.getKeywordTokenType(134);}
"deallocate" {return tt.getKeywordTokenType(135);}
"dec" {return tt.getKeywordTokenType(136);}
"declare" {return tt.getKeywordTokenType(137);}
"default" {return tt.getKeywordTokenType(138);}
"defaults" {return tt.getKeywordTokenType(139);}
"deferrable" {return tt.getKeywordTokenType(140);}
"deferred" {return tt.getKeywordTokenType(141);}
"defined" {return tt.getKeywordTokenType(142);}
"definer" {return tt.getKeywordTokenType(143);}
"degree" {return tt.getKeywordTokenType(144);}
"delete" {return tt.getKeywordTokenType(145);}
"delimiter" {return tt.getKeywordTokenType(146);}
"delimiters" {return tt.getKeywordTokenType(147);}
"depth" {return tt.getKeywordTokenType(148);}
"deref" {return tt.getKeywordTokenType(149);}
"derived" {return tt.getKeywordTokenType(150);}
"desc" {return tt.getKeywordTokenType(151);}
"describe" {return tt.getKeywordTokenType(152);}
"descriptor" {return tt.getKeywordTokenType(153);}
"deterministic" {return tt.getKeywordTokenType(154);}
"diagnostics" {return tt.getKeywordTokenType(155);}
"dictionary" {return tt.getKeywordTokenType(156);}
"disable" {return tt.getKeywordTokenType(157);}
"discard" {return tt.getKeywordTokenType(158);}
"disconnect" {return tt.getKeywordTokenType(159);}
"dispatch" {return tt.getKeywordTokenType(160);}
"distinct" {return tt.getKeywordTokenType(161);}
"dlnewcopy" {return tt.getKeywordTokenType(162);}
"dlpreviouscopy" {return tt.getKeywordTokenType(163);}
"dlurlcomplete" {return tt.getKeywordTokenType(164);}
"dlurlcompleteonly" {return tt.getKeywordTokenType(165);}
"dlurlcompletewrite" {return tt.getKeywordTokenType(166);}
"dlurlpath" {return tt.getKeywordTokenType(167);}
"dlurlpathonly" {return tt.getKeywordTokenType(168);}
"dlurlpathwrite" {return tt.getKeywordTokenType(169);}
"dlurlscheme" {return tt.getKeywordTokenType(170);}
"dlurlserver" {return tt.getKeywordTokenType(171);}
"dlvalue" {return tt.getKeywordTokenType(172);}
"do" {return tt.getKeywordTokenType(173);}
"document" {return tt.getKeywordTokenType(174);}
"domain" {return tt.getKeywordTokenType(175);}
"double" {return tt.getKeywordTokenType(176);}
"drop" {return tt.getKeywordTokenType(177);}
"dynamic" {return tt.getKeywordTokenType(178);}
"dynamic_function" {return tt.getKeywordTokenType(179);}
"dynamic_function_code" {return tt.getKeywordTokenType(180);}
"each" {return tt.getKeywordTokenType(181);}
"element" {return tt.getKeywordTokenType(182);}
"else" {return tt.getKeywordTokenType(183);}
"empty" {return tt.getKeywordTokenType(184);}
"enable" {return tt.getKeywordTokenType(185);}
"encoding" {return tt.getKeywordTokenType(186);}
"encrypted" {return tt.getKeywordTokenType(187);}
"end" {return tt.getKeywordTokenType(188);}
"end-exec" {return tt.getKeywordTokenType(189);}
"end_frame" {return tt.getKeywordTokenType(190);}
"end_partition" {return tt.getKeywordTokenType(191);}
"enforced" {return tt.getKeywordTokenType(192);}
"enum" {return tt.getKeywordTokenType(193);}
"equals" {return tt.getKeywordTokenType(194);}
"escape" {return tt.getKeywordTokenType(195);}
"event" {return tt.getKeywordTokenType(196);}
"except" {return tt.getKeywordTokenType(197);}
"exception" {return tt.getKeywordTokenType(198);}
"exclude" {return tt.getKeywordTokenType(199);}
"excluding" {return tt.getKeywordTokenType(200);}
"exclusive" {return tt.getKeywordTokenType(201);}
"exec" {return tt.getKeywordTokenType(202);}
"execute" {return tt.getKeywordTokenType(203);}
"exists" {return tt.getKeywordTokenType(204);}
"explain" {return tt.getKeywordTokenType(205);}
"expression" {return tt.getKeywordTokenType(206);}
"extension" {return tt.getKeywordTokenType(207);}
"external" {return tt.getKeywordTokenType(208);}
"false" {return tt.getKeywordTokenType(209);}
"fetch" {return tt.getKeywordTokenType(210);}
"file" {return tt.getKeywordTokenType(211);}
"filter" {return tt.getKeywordTokenType(212);}
"final" {return tt.getKeywordTokenType(213);}
"first" {return tt.getKeywordTokenType(214);}
"flag" {return tt.getKeywordTokenType(215);}
"float" {return tt.getKeywordTokenType(216);}
"following" {return tt.getKeywordTokenType(217);}
"for" {return tt.getKeywordTokenType(218);}
"force" {return tt.getKeywordTokenType(219);}
"foreign" {return tt.getKeywordTokenType(220);}
"fortran" {return tt.getKeywordTokenType(221);}
"forward" {return tt.getKeywordTokenType(222);}
"found" {return tt.getKeywordTokenType(223);}
"frame_row" {return tt.getKeywordTokenType(224);}
"free" {return tt.getKeywordTokenType(225);}
"freeze" {return tt.getKeywordTokenType(226);}
"from" {return tt.getKeywordTokenType(227);}
"fs" {return tt.getKeywordTokenType(228);}
"full" {return tt.getKeywordTokenType(229);}
"function" {return tt.getKeywordTokenType(230);}
"functions" {return tt.getKeywordTokenType(231);}
"fusion" {return tt.getKeywordTokenType(232);}
"g" {return tt.getKeywordTokenType(233);}
"general" {return tt.getKeywordTokenType(234);}
"generated" {return tt.getKeywordTokenType(235);}
"get" {return tt.getKeywordTokenType(236);}
"global" {return tt.getKeywordTokenType(237);}
"go" {return tt.getKeywordTokenType(238);}
"goto" {return tt.getKeywordTokenType(239);}
"grant" {return tt.getKeywordTokenType(240);}
"granted" {return tt.getKeywordTokenType(241);}
"greatest" {return tt.getKeywordTokenType(242);}
"group" {return tt.getKeywordTokenType(243);}
"grouping" {return tt.getKeywordTokenType(244);}
"groups" {return tt.getKeywordTokenType(245);}
"handler" {return tt.getKeywordTokenType(246);}
"having" {return tt.getKeywordTokenType(247);}
"header" {return tt.getKeywordTokenType(248);}
"hex" {return tt.getKeywordTokenType(249);}
"hierarchy" {return tt.getKeywordTokenType(250);}
"hold" {return tt.getKeywordTokenType(251);}
"hour" {return tt.getKeywordTokenType(252);}
"id" {return tt.getKeywordTokenType(253);}
"identity" {return tt.getKeywordTokenType(254);}
"if" {return tt.getKeywordTokenType(255);}
"ignore" {return tt.getKeywordTokenType(256);}
"ilike" {return tt.getKeywordTokenType(257);}
"immediate" {return tt.getKeywordTokenType(258);}
"immediately" {return tt.getKeywordTokenType(259);}
"immutable" {return tt.getKeywordTokenType(260);}
"implementation" {return tt.getKeywordTokenType(261);}
"implicit" {return tt.getKeywordTokenType(262);}
"import" {return tt.getKeywordTokenType(263);}
"in" {return tt.getKeywordTokenType(264);}
"including" {return tt.getKeywordTokenType(265);}
"increment" {return tt.getKeywordTokenType(266);}
"indent" {return tt.getKeywordTokenType(267);}
"index" {return tt.getKeywordTokenType(268);}
"indexes" {return tt.getKeywordTokenType(269);}
"indicator" {return tt.getKeywordTokenType(270);}
"inherit" {return tt.getKeywordTokenType(271);}
"inherits" {return tt.getKeywordTokenType(272);}
"initially" {return tt.getKeywordTokenType(273);}
"inline" {return tt.getKeywordTokenType(274);}
"inner" {return tt.getKeywordTokenType(275);}
"inout" {return tt.getKeywordTokenType(276);}
"input" {return tt.getKeywordTokenType(277);}
"insensitive" {return tt.getKeywordTokenType(278);}
"insert" {return tt.getKeywordTokenType(279);}
"instance" {return tt.getKeywordTokenType(280);}
"instantiable" {return tt.getKeywordTokenType(281);}
"instead" {return tt.getKeywordTokenType(282);}
"integrity" {return tt.getKeywordTokenType(283);}
"intersect" {return tt.getKeywordTokenType(284);}
"intersection" {return tt.getKeywordTokenType(285);}
"into" {return tt.getKeywordTokenType(286);}
"invoker" {return tt.getKeywordTokenType(287);}
"is" {return tt.getKeywordTokenType(288);}
"isnull" {return tt.getKeywordTokenType(289);}
"isolation" {return tt.getKeywordTokenType(290);}
"join" {return tt.getKeywordTokenType(291);}
"k" {return tt.getKeywordTokenType(292);}
"key" {return tt.getKeywordTokenType(293);}
"key_member" {return tt.getKeywordTokenType(294);}
"key_type" {return tt.getKeywordTokenType(295);}
"label" {return tt.getKeywordTokenType(296);}
"language" {return tt.getKeywordTokenType(297);}
"large" {return tt.getKeywordTokenType(298);}
"last" {return tt.getKeywordTokenType(299);}
"lateral" {return tt.getKeywordTokenType(300);}
"lc_collate" {return tt.getKeywordTokenType(301);}
"lc_ctype" {return tt.getKeywordTokenType(302);}
"leading" {return tt.getKeywordTokenType(303);}
"leakproof" {return tt.getKeywordTokenType(304);}
"least" {return tt.getKeywordTokenType(305);}
"level" {return tt.getKeywordTokenType(306);}
"library" {return tt.getKeywordTokenType(307);}
"like" {return tt.getKeywordTokenType(308);}
"like_regex" {return tt.getKeywordTokenType(309);}
"limit" {return tt.getKeywordTokenType(310);}
"link" {return tt.getKeywordTokenType(311);}
"listen" {return tt.getKeywordTokenType(312);}
"load" {return tt.getKeywordTokenType(313);}
"local" {return tt.getKeywordTokenType(314);}
"location" {return tt.getKeywordTokenType(315);}
"locator" {return tt.getKeywordTokenType(316);}
"lock" {return tt.getKeywordTokenType(317);}
"m" {return tt.getKeywordTokenType(318);}
"map" {return tt.getKeywordTokenType(319);}
"mapping" {return tt.getKeywordTokenType(320);}
"match" {return tt.getKeywordTokenType(321);}
"matched" {return tt.getKeywordTokenType(322);}
"materialized" {return tt.getKeywordTokenType(323);}
"maxvalue" {return tt.getKeywordTokenType(324);}
"max_cardinality" {return tt.getKeywordTokenType(325);}
"member" {return tt.getKeywordTokenType(326);}
"merge" {return tt.getKeywordTokenType(327);}
"message_length" {return tt.getKeywordTokenType(328);}
"message_octet_length" {return tt.getKeywordTokenType(329);}
"message_text" {return tt.getKeywordTokenType(330);}
"method" {return tt.getKeywordTokenType(331);}
"minute" {return tt.getKeywordTokenType(332);}
"minvalue" {return tt.getKeywordTokenType(333);}
"mode" {return tt.getKeywordTokenType(334);}
"modifies" {return tt.getKeywordTokenType(335);}
"module" {return tt.getKeywordTokenType(336);}
"month" {return tt.getKeywordTokenType(337);}
"more" {return tt.getKeywordTokenType(338);}
"move" {return tt.getKeywordTokenType(339);}
"multiset" {return tt.getKeywordTokenType(340);}
"mumps" {return tt.getKeywordTokenType(341);}
"names" {return tt.getKeywordTokenType(342);}
"namespace" {return tt.getKeywordTokenType(343);}
"national" {return tt.getKeywordTokenType(344);}
"natural" {return tt.getKeywordTokenType(345);}
"nchar" {return tt.getKeywordTokenType(346);}
"nclob" {return tt.getKeywordTokenType(347);}
"nesting" {return tt.getKeywordTokenType(348);}
"new" {return tt.getKeywordTokenType(349);}
"next" {return tt.getKeywordTokenType(350);}
"nfc" {return tt.getKeywordTokenType(351);}
"nfd" {return tt.getKeywordTokenType(352);}
"nfkc" {return tt.getKeywordTokenType(353);}
"nfkd" {return tt.getKeywordTokenType(354);}
"nil" {return tt.getKeywordTokenType(355);}
"no" {return tt.getKeywordTokenType(356);}
"none" {return tt.getKeywordTokenType(357);}
"normalize" {return tt.getKeywordTokenType(358);}
"normalized" {return tt.getKeywordTokenType(359);}
"not" {return tt.getKeywordTokenType(360);}
"nothing" {return tt.getKeywordTokenType(361);}
"notify" {return tt.getKeywordTokenType(362);}
"notnull" {return tt.getKeywordTokenType(363);}
"nowait" {return tt.getKeywordTokenType(364);}
"null" {return tt.getKeywordTokenType(365);}
"nullable" {return tt.getKeywordTokenType(366);}
"nullif" {return tt.getKeywordTokenType(367);}
"nulls" {return tt.getKeywordTokenType(368);}
"number" {return tt.getKeywordTokenType(369);}
"object" {return tt.getKeywordTokenType(370);}
"occurrences_regex" {return tt.getKeywordTokenType(371);}
"octets" {return tt.getKeywordTokenType(372);}
"of" {return tt.getKeywordTokenType(373);}
"off" {return tt.getKeywordTokenType(374);}
"offset" {return tt.getKeywordTokenType(375);}
"oids" {return tt.getKeywordTokenType(376);}
"old" {return tt.getKeywordTokenType(377);}
"on" {return tt.getKeywordTokenType(378);}
"only" {return tt.getKeywordTokenType(379);}
"open" {return tt.getKeywordTokenType(380);}
"operator" {return tt.getKeywordTokenType(381);}
"option" {return tt.getKeywordTokenType(382);}
"options" {return tt.getKeywordTokenType(383);}
"or" {return tt.getKeywordTokenType(384);}
"order" {return tt.getKeywordTokenType(385);}
"ordering" {return tt.getKeywordTokenType(386);}
"ordinality" {return tt.getKeywordTokenType(387);}
"others" {return tt.getKeywordTokenType(388);}
"out" {return tt.getKeywordTokenType(389);}
"outer" {return tt.getKeywordTokenType(390);}
"output" {return tt.getKeywordTokenType(391);}
"over" {return tt.getKeywordTokenType(392);}
"overlaps" {return tt.getKeywordTokenType(393);}
"overriding" {return tt.getKeywordTokenType(394);}
"owned" {return tt.getKeywordTokenType(395);}
"owner" {return tt.getKeywordTokenType(396);}
"p" {return tt.getKeywordTokenType(397);}
"pad" {return tt.getKeywordTokenType(398);}
"parameter" {return tt.getKeywordTokenType(399);}
"parameter_mode" {return tt.getKeywordTokenType(400);}
"parameter_name" {return tt.getKeywordTokenType(401);}
"parameter_ordinal_position" {return tt.getKeywordTokenType(402);}
"parameter_specific_catalog" {return tt.getKeywordTokenType(403);}
"parameter_specific_name" {return tt.getKeywordTokenType(404);}
"parameter_specific_schema" {return tt.getKeywordTokenType(405);}
"parser" {return tt.getKeywordTokenType(406);}
"partial" {return tt.getKeywordTokenType(407);}
"partition" {return tt.getKeywordTokenType(408);}
"pascal" {return tt.getKeywordTokenType(409);}
"passing" {return tt.getKeywordTokenType(410);}
"passthrough" {return tt.getKeywordTokenType(411);}
"password" {return tt.getKeywordTokenType(412);}
"percent" {return tt.getKeywordTokenType(413);}
"percentile_cont" {return tt.getKeywordTokenType(414);}
"percentile_disc" {return tt.getKeywordTokenType(415);}
"period" {return tt.getKeywordTokenType(416);}
"permission" {return tt.getKeywordTokenType(417);}
"placing" {return tt.getKeywordTokenType(418);}
"plans" {return tt.getKeywordTokenType(419);}
"pli" {return tt.getKeywordTokenType(420);}
"portion" {return tt.getKeywordTokenType(421);}
"position_regex" {return tt.getKeywordTokenType(422);}
"precedes" {return tt.getKeywordTokenType(423);}
"preceding" {return tt.getKeywordTokenType(424);}
"precision" {return tt.getKeywordTokenType(425);}
"prepare" {return tt.getKeywordTokenType(426);}
"prepared" {return tt.getKeywordTokenType(427);}
"preserve" {return tt.getKeywordTokenType(428);}
"primary" {return tt.getKeywordTokenType(429);}
"prior" {return tt.getKeywordTokenType(430);}
"privileges" {return tt.getKeywordTokenType(431);}
"procedural" {return tt.getKeywordTokenType(432);}
"procedure" {return tt.getKeywordTokenType(433);}
"program" {return tt.getKeywordTokenType(434);}
"public" {return tt.getKeywordTokenType(435);}
"quote" {return tt.getKeywordTokenType(436);}
"range" {return tt.getKeywordTokenType(437);}
"read" {return tt.getKeywordTokenType(438);}
"reads" {return tt.getKeywordTokenType(439);}
"reassign" {return tt.getKeywordTokenType(440);}
"recheck" {return tt.getKeywordTokenType(441);}
"recovery" {return tt.getKeywordTokenType(442);}
"recursive" {return tt.getKeywordTokenType(443);}
"ref" {return tt.getKeywordTokenType(444);}
"references" {return tt.getKeywordTokenType(445);}
"referencing" {return tt.getKeywordTokenType(446);}
"refresh" {return tt.getKeywordTokenType(447);}
"regr_avgx" {return tt.getKeywordTokenType(448);}
"regr_avgy" {return tt.getKeywordTokenType(449);}
"regr_count" {return tt.getKeywordTokenType(450);}
"regr_intercept" {return tt.getKeywordTokenType(451);}
"regr_r2" {return tt.getKeywordTokenType(452);}
"regr_slope" {return tt.getKeywordTokenType(453);}
"regr_sxx" {return tt.getKeywordTokenType(454);}
"regr_sxy" {return tt.getKeywordTokenType(455);}
"regr_syy" {return tt.getKeywordTokenType(456);}
"reindex" {return tt.getKeywordTokenType(457);}
"relative" {return tt.getKeywordTokenType(458);}
"release" {return tt.getKeywordTokenType(459);}
"rename" {return tt.getKeywordTokenType(460);}
"repeatable" {return tt.getKeywordTokenType(461);}
"replica" {return tt.getKeywordTokenType(462);}
"requiring" {return tt.getKeywordTokenType(463);}
"reset" {return tt.getKeywordTokenType(464);}
"respect" {return tt.getKeywordTokenType(465);}
"restart" {return tt.getKeywordTokenType(466);}
"restore" {return tt.getKeywordTokenType(467);}
"restrict" {return tt.getKeywordTokenType(468);}
"result" {return tt.getKeywordTokenType(469);}
"return" {return tt.getKeywordTokenType(470);}
"returned_cardinality" {return tt.getKeywordTokenType(471);}
"returned_length" {return tt.getKeywordTokenType(472);}
"returned_octet_length" {return tt.getKeywordTokenType(473);}
"returned_sqlstate" {return tt.getKeywordTokenType(474);}
"returning" {return tt.getKeywordTokenType(475);}
"returns" {return tt.getKeywordTokenType(476);}
"revoke" {return tt.getKeywordTokenType(477);}
"role" {return tt.getKeywordTokenType(478);}
"rollback" {return tt.getKeywordTokenType(479);}
"rollup" {return tt.getKeywordTokenType(480);}
"routine" {return tt.getKeywordTokenType(481);}
"routine_catalog" {return tt.getKeywordTokenType(482);}
"routine_name" {return tt.getKeywordTokenType(483);}
"routine_schema" {return tt.getKeywordTokenType(484);}
"row" {return tt.getKeywordTokenType(485);}
"rows" {return tt.getKeywordTokenType(486);}
"row_count" {return tt.getKeywordTokenType(487);}
"rule" {return tt.getKeywordTokenType(488);}
"savepoint" {return tt.getKeywordTokenType(489);}
"scale" {return tt.getKeywordTokenType(490);}
"schema" {return tt.getKeywordTokenType(491);}
"schema_name" {return tt.getKeywordTokenType(492);}
"scope" {return tt.getKeywordTokenType(493);}
"scope_catalog" {return tt.getKeywordTokenType(494);}
"scope_name" {return tt.getKeywordTokenType(495);}
"scope_schema" {return tt.getKeywordTokenType(496);}
"scroll" {return tt.getKeywordTokenType(497);}
"search" {return tt.getKeywordTokenType(498);}
"second" {return tt.getKeywordTokenType(499);}
"section" {return tt.getKeywordTokenType(500);}
"security" {return tt.getKeywordTokenType(501);}
"select" {return tt.getKeywordTokenType(502);}
"selective" {return tt.getKeywordTokenType(503);}
"self" {return tt.getKeywordTokenType(504);}
"sensitive" {return tt.getKeywordTokenType(505);}
"sequence" {return tt.getKeywordTokenType(506);}
"sequences" {return tt.getKeywordTokenType(507);}
"serializable" {return tt.getKeywordTokenType(508);}
"server" {return tt.getKeywordTokenType(509);}
"server_name" {return tt.getKeywordTokenType(510);}
"session" {return tt.getKeywordTokenType(511);}
"set" {return tt.getKeywordTokenType(512);}
"setof" {return tt.getKeywordTokenType(513);}
"sets" {return tt.getKeywordTokenType(514);}
"share" {return tt.getKeywordTokenType(515);}
"show" {return tt.getKeywordTokenType(516);}
"similar" {return tt.getKeywordTokenType(517);}
"simple" {return tt.getKeywordTokenType(518);}
"size" {return tt.getKeywordTokenType(519);}
"snapshot" {return tt.getKeywordTokenType(520);}
"some" {return tt.getKeywordTokenType(521);}
"source" {return tt.getKeywordTokenType(522);}
"space" {return tt.getKeywordTokenType(523);}
"specific" {return tt.getKeywordTokenType(524);}
"specifictype" {return tt.getKeywordTokenType(525);}
"specific_name" {return tt.getKeywordTokenType(526);}
"sql" {return tt.getKeywordTokenType(527);}
"sqlcode" {return tt.getKeywordTokenType(528);}
"sqlerror" {return tt.getKeywordTokenType(529);}
"sqlexception" {return tt.getKeywordTokenType(530);}
"sqlstate" {return tt.getKeywordTokenType(531);}
"sqlwarning" {return tt.getKeywordTokenType(532);}
"stable" {return tt.getKeywordTokenType(533);}
"standalone" {return tt.getKeywordTokenType(534);}
"start" {return tt.getKeywordTokenType(535);}
"state" {return tt.getKeywordTokenType(536);}
"statement" {return tt.getKeywordTokenType(537);}
"static" {return tt.getKeywordTokenType(538);}
"statistics" {return tt.getKeywordTokenType(539);}
"stddev_pop" {return tt.getKeywordTokenType(540);}
"stddev_samp" {return tt.getKeywordTokenType(541);}
"stdin" {return tt.getKeywordTokenType(542);}
"stdout" {return tt.getKeywordTokenType(543);}
"storage" {return tt.getKeywordTokenType(544);}
"strict" {return tt.getKeywordTokenType(545);}
"structure" {return tt.getKeywordTokenType(546);}
"style" {return tt.getKeywordTokenType(547);}
"subclass_origin" {return tt.getKeywordTokenType(548);}
"submultiset" {return tt.getKeywordTokenType(549);}
"substring_regex" {return tt.getKeywordTokenType(550);}
"succeeds" {return tt.getKeywordTokenType(551);}
"symmetric" {return tt.getKeywordTokenType(552);}
"sysid" {return tt.getKeywordTokenType(553);}
"system" {return tt.getKeywordTokenType(554);}
"system_time" {return tt.getKeywordTokenType(555);}
"system_user" {return tt.getKeywordTokenType(556);}
"t" {return tt.getKeywordTokenType(557);}
"table" {return tt.getKeywordTokenType(558);}
"tables" {return tt.getKeywordTokenType(559);}
"tablesample" {return tt.getKeywordTokenType(560);}
"tablespace" {return tt.getKeywordTokenType(561);}
"table_name" {return tt.getKeywordTokenType(562);}
"temp" {return tt.getKeywordTokenType(563);}
"template" {return tt.getKeywordTokenType(564);}
"temporary" {return tt.getKeywordTokenType(565);}
"then" {return tt.getKeywordTokenType(566);}
"ties" {return tt.getKeywordTokenType(567);}
"timezone_hour" {return tt.getKeywordTokenType(568);}
"timezone_minute" {return tt.getKeywordTokenType(569);}
"to" {return tt.getKeywordTokenType(570);}
"token" {return tt.getKeywordTokenType(571);}
"top_level_count" {return tt.getKeywordTokenType(572);}
"trailing" {return tt.getKeywordTokenType(573);}
"transaction" {return tt.getKeywordTokenType(574);}
"transactions_committed" {return tt.getKeywordTokenType(575);}
"transactions_rolled_back" {return tt.getKeywordTokenType(576);}
"transaction_active" {return tt.getKeywordTokenType(577);}
"transform" {return tt.getKeywordTokenType(578);}
"transforms" {return tt.getKeywordTokenType(579);}
"translate_regex" {return tt.getKeywordTokenType(580);}
"translation" {return tt.getKeywordTokenType(581);}
"treat" {return tt.getKeywordTokenType(582);}
"trigger" {return tt.getKeywordTokenType(583);}
"trigger_catalog" {return tt.getKeywordTokenType(584);}
"trigger_name" {return tt.getKeywordTokenType(585);}
"trigger_schema" {return tt.getKeywordTokenType(586);}
"trim_array" {return tt.getKeywordTokenType(587);}
"true" {return tt.getKeywordTokenType(588);}
"truncate" {return tt.getKeywordTokenType(589);}
"trusted" {return tt.getKeywordTokenType(590);}
"type" {return tt.getKeywordTokenType(591);}
"types" {return tt.getKeywordTokenType(592);}
"uescape" {return tt.getKeywordTokenType(593);}
"unbounded" {return tt.getKeywordTokenType(594);}
"uncommitted" {return tt.getKeywordTokenType(595);}
"under" {return tt.getKeywordTokenType(596);}
"unencrypted" {return tt.getKeywordTokenType(597);}
"union" {return tt.getKeywordTokenType(598);}
"unique" {return tt.getKeywordTokenType(599);}
"unknown" {return tt.getKeywordTokenType(600);}
"unlink" {return tt.getKeywordTokenType(601);}
"unlisten" {return tt.getKeywordTokenType(602);}
"unlogged" {return tt.getKeywordTokenType(603);}
"unnamed" {return tt.getKeywordTokenType(604);}
"until" {return tt.getKeywordTokenType(605);}
"untyped" {return tt.getKeywordTokenType(606);}
"update" {return tt.getKeywordTokenType(607);}
"uri" {return tt.getKeywordTokenType(608);}
"usage" {return tt.getKeywordTokenType(609);}
"user_defined_type_catalog" {return tt.getKeywordTokenType(610);}
"user_defined_type_code" {return tt.getKeywordTokenType(611);}
"user_defined_type_name" {return tt.getKeywordTokenType(612);}
"user_defined_type_schema" {return tt.getKeywordTokenType(613);}
"using" {return tt.getKeywordTokenType(614);}
"vacuum" {return tt.getKeywordTokenType(615);}
"valid" {return tt.getKeywordTokenType(616);}
"validate" {return tt.getKeywordTokenType(617);}
"validator" {return tt.getKeywordTokenType(618);}
"value" {return tt.getKeywordTokenType(619);}
"values" {return tt.getKeywordTokenType(620);}
"value_of" {return tt.getKeywordTokenType(621);}
"varbinary" {return tt.getKeywordTokenType(622);}
"variadic" {return tt.getKeywordTokenType(623);}
"varying" {return tt.getKeywordTokenType(624);}
"var_pop" {return tt.getKeywordTokenType(625);}
"var_samp" {return tt.getKeywordTokenType(626);}
"verbose" {return tt.getKeywordTokenType(627);}
"versioning" {return tt.getKeywordTokenType(628);}
"view" {return tt.getKeywordTokenType(629);}
"volatile" {return tt.getKeywordTokenType(630);}
"when" {return tt.getKeywordTokenType(631);}
"whenever" {return tt.getKeywordTokenType(632);}
"where" {return tt.getKeywordTokenType(633);}
"whitespace" {return tt.getKeywordTokenType(634);}
"window" {return tt.getKeywordTokenType(635);}
"with" {return tt.getKeywordTokenType(636);}
"within" {return tt.getKeywordTokenType(637);}
"without" {return tt.getKeywordTokenType(638);}
"work" {return tt.getKeywordTokenType(639);}
"wrapper" {return tt.getKeywordTokenType(640);}
"write" {return tt.getKeywordTokenType(641);}
"xmlattributes" {return tt.getKeywordTokenType(642);}
"xmlbinary" {return tt.getKeywordTokenType(643);}
"xmlcast" {return tt.getKeywordTokenType(644);}
"xmldeclaration" {return tt.getKeywordTokenType(645);}
"xmldocument" {return tt.getKeywordTokenType(646);}
"xmliterate" {return tt.getKeywordTokenType(647);}
"xmlnamespaces" {return tt.getKeywordTokenType(648);}
"xmlparse" {return tt.getKeywordTokenType(649);}
"xmlquery" {return tt.getKeywordTokenType(650);}
"xmlschema" {return tt.getKeywordTokenType(651);}
"xmlserialize" {return tt.getKeywordTokenType(652);}
"xmltable" {return tt.getKeywordTokenType(653);}
"xmltext" {return tt.getKeywordTokenType(654);}
"xmlvalidate" {return tt.getKeywordTokenType(655);}
"year" {return tt.getKeywordTokenType(656);}
"yes" {return tt.getKeywordTokenType(657);}
"zone" {return tt.getKeywordTokenType(658);}





"abbrev" {return tt.getFunctionTokenType(0);}
"abs" {return tt.getFunctionTokenType(1);}
"acos" {return tt.getFunctionTokenType(2);}
"age" {return tt.getFunctionTokenType(3);}
"area" {return tt.getFunctionTokenType(4);}
"array_agg" {return tt.getFunctionTokenType(5);}
"array_append" {return tt.getFunctionTokenType(6);}
"array_cat" {return tt.getFunctionTokenType(7);}
"array_dims" {return tt.getFunctionTokenType(8);}
"array_fill" {return tt.getFunctionTokenType(9);}
"array_length" {return tt.getFunctionTokenType(10);}
"array_lower" {return tt.getFunctionTokenType(11);}
"array_ndims" {return tt.getFunctionTokenType(12);}
"array_prepend" {return tt.getFunctionTokenType(13);}
"array_remove" {return tt.getFunctionTokenType(14);}
"array_replace" {return tt.getFunctionTokenType(15);}
"array_to_json" {return tt.getFunctionTokenType(16);}
"array_to_string" {return tt.getFunctionTokenType(17);}
"array_upper" {return tt.getFunctionTokenType(18);}
"ascii" {return tt.getFunctionTokenType(19);}
"asin" {return tt.getFunctionTokenType(20);}
"atan" {return tt.getFunctionTokenType(21);}
"atan2" {return tt.getFunctionTokenType(22);}
"avg" {return tt.getFunctionTokenType(23);}
"bit" {return tt.getFunctionTokenType(24);}
"bit_and" {return tt.getFunctionTokenType(25);}
"bit_length" {return tt.getFunctionTokenType(26);}
"bit_or" {return tt.getFunctionTokenType(27);}
"bool_and" {return tt.getFunctionTokenType(28);}
"bool_or" {return tt.getFunctionTokenType(29);}
"broadcast" {return tt.getFunctionTokenType(30);}
"btrim" {return tt.getFunctionTokenType(31);}
"cbrt" {return tt.getFunctionTokenType(32);}
"ceil" {return tt.getFunctionTokenType(33);}
"ceiling" {return tt.getFunctionTokenType(34);}
"center" {return tt.getFunctionTokenType(35);}
"char_length" {return tt.getFunctionTokenType(36);}
"chr" {return tt.getFunctionTokenType(37);}
"clock_timestamp" {return tt.getFunctionTokenType(38);}
"col_description" {return tt.getFunctionTokenType(39);}
"concat" {return tt.getFunctionTokenType(40);}
"concat_ws" {return tt.getFunctionTokenType(41);}
"convert" {return tt.getFunctionTokenType(42);}
"convert_from" {return tt.getFunctionTokenType(43);}
"convert_to" {return tt.getFunctionTokenType(44);}
"cos" {return tt.getFunctionTokenType(45);}
"cot" {return tt.getFunctionTokenType(46);}
"count" {return tt.getFunctionTokenType(47);}
"cume_dist" {return tt.getFunctionTokenType(48);}
"current_catalog" {return tt.getFunctionTokenType(49);}
"current_database" {return tt.getFunctionTokenType(50);}
"current_date" {return tt.getFunctionTokenType(51);}
"current_query" {return tt.getFunctionTokenType(52);}
"current_schema" {return tt.getFunctionTokenType(53);}
"current_schemas" {return tt.getFunctionTokenType(54);}
"current_setting" {return tt.getFunctionTokenType(55);}
"current_time" {return tt.getFunctionTokenType(56);}
"current_timestamp" {return tt.getFunctionTokenType(57);}
"current_user" {return tt.getFunctionTokenType(58);}
"currval" {return tt.getFunctionTokenType(59);}
"cursor_to_xml" {return tt.getFunctionTokenType(60);}
"date_part" {return tt.getFunctionTokenType(61);}
"date_trunc" {return tt.getFunctionTokenType(62);}
"decode" {return tt.getFunctionTokenType(63);}
"degrees" {return tt.getFunctionTokenType(64);}
"dense_rank" {return tt.getFunctionTokenType(65);}
"diameter" {return tt.getFunctionTokenType(66);}
"div" {return tt.getFunctionTokenType(67);}
"encode" {return tt.getFunctionTokenType(68);}
"enum_first" {return tt.getFunctionTokenType(69);}
"enum_last" {return tt.getFunctionTokenType(70);}
"enum_range" {return tt.getFunctionTokenType(71);}
"every" {return tt.getFunctionTokenType(72);}
"exp" {return tt.getFunctionTokenType(73);}
"extract" {return tt.getFunctionTokenType(74);}
"family" {return tt.getFunctionTokenType(75);}
"first_value" {return tt.getFunctionTokenType(76);}
"floor" {return tt.getFunctionTokenType(77);}
"format" {return tt.getFunctionTokenType(78);}
"format_type" {return tt.getFunctionTokenType(79);}
"generate_series" {return tt.getFunctionTokenType(80);}
"generate_subscripts" {return tt.getFunctionTokenType(81);}
"get_bit" {return tt.getFunctionTokenType(82);}
"get_byte" {return tt.getFunctionTokenType(83);}
"get_current_ts_config" {return tt.getFunctionTokenType(84);}
"has_any_column_privilege" {return tt.getFunctionTokenType(85);}
"has_column_privilege" {return tt.getFunctionTokenType(86);}
"has_database_privilege" {return tt.getFunctionTokenType(87);}
"has_foreign_data_wrapper_privilege" {return tt.getFunctionTokenType(88);}
"has_function_privilege" {return tt.getFunctionTokenType(89);}
"has_language_privilege" {return tt.getFunctionTokenType(90);}
"has_schema_privilege" {return tt.getFunctionTokenType(91);}
"has_sequence_privilege" {return tt.getFunctionTokenType(92);}
"has_server_privilege" {return tt.getFunctionTokenType(93);}
"has_tablespace_privilege" {return tt.getFunctionTokenType(94);}
"has_table_privilege" {return tt.getFunctionTokenType(95);}
"height" {return tt.getFunctionTokenType(96);}
"host" {return tt.getFunctionTokenType(97);}
"hostmask" {return tt.getFunctionTokenType(98);}
"inet_client_addr" {return tt.getFunctionTokenType(99);}
"inet_client_port" {return tt.getFunctionTokenType(100);}
"inet_server_addr" {return tt.getFunctionTokenType(101);}
"inet_server_port" {return tt.getFunctionTokenType(102);}
"initcap" {return tt.getFunctionTokenType(103);}
"isclosed" {return tt.getFunctionTokenType(104);}
"isempty" {return tt.getFunctionTokenType(105);}
"isfinite" {return tt.getFunctionTokenType(106);}
"isopen" {return tt.getFunctionTokenType(107);}
"json_agg" {return tt.getFunctionTokenType(108);}
"json_array_elements" {return tt.getFunctionTokenType(109);}
"json_array_length" {return tt.getFunctionTokenType(110);}
"json_each" {return tt.getFunctionTokenType(111);}
"json_each_text" {return tt.getFunctionTokenType(112);}
"json_extract_path" {return tt.getFunctionTokenType(113);}
"json_extract_path_text" {return tt.getFunctionTokenType(114);}
"json_object_keys" {return tt.getFunctionTokenType(115);}
"json_populate_record" {return tt.getFunctionTokenType(116);}
"json_populate_recordset" {return tt.getFunctionTokenType(117);}
"justify_days" {return tt.getFunctionTokenType(118);}
"justify_hours" {return tt.getFunctionTokenType(119);}
"justify_interval" {return tt.getFunctionTokenType(120);}
"lag" {return tt.getFunctionTokenType(121);}
"lastval" {return tt.getFunctionTokenType(122);}
"last_value" {return tt.getFunctionTokenType(123);}
"lead" {return tt.getFunctionTokenType(124);}
"left" {return tt.getFunctionTokenType(125);}
"length" {return tt.getFunctionTokenType(126);}
"ln" {return tt.getFunctionTokenType(127);}
"localtime" {return tt.getFunctionTokenType(128);}
"localtimestamp" {return tt.getFunctionTokenType(129);}
"log" {return tt.getFunctionTokenType(130);}
"lower" {return tt.getFunctionTokenType(131);}
"lower_inc" {return tt.getFunctionTokenType(132);}
"lower_inf" {return tt.getFunctionTokenType(133);}
"lpad" {return tt.getFunctionTokenType(134);}
"ltrim" {return tt.getFunctionTokenType(135);}
"masklen" {return tt.getFunctionTokenType(136);}
"max" {return tt.getFunctionTokenType(137);}
"md5" {return tt.getFunctionTokenType(138);}
"min" {return tt.getFunctionTokenType(139);}
"mod" {return tt.getFunctionTokenType(140);}
"netmask" {return tt.getFunctionTokenType(141);}
"network" {return tt.getFunctionTokenType(142);}
"nextval" {return tt.getFunctionTokenType(143);}
"now" {return tt.getFunctionTokenType(144);}
"npoints" {return tt.getFunctionTokenType(145);}
"nth_value" {return tt.getFunctionTokenType(146);}
"ntile" {return tt.getFunctionTokenType(147);}
"numnode" {return tt.getFunctionTokenType(148);}
"obj_description" {return tt.getFunctionTokenType(149);}
"octet_length" {return tt.getFunctionTokenType(150);}
"overlay" {return tt.getFunctionTokenType(151);}
"pclose" {return tt.getFunctionTokenType(152);}
"percent_rank" {return tt.getFunctionTokenType(153);}
"pg_advisory_lock" {return tt.getFunctionTokenType(154);}
"pg_advisory_lock_shared" {return tt.getFunctionTokenType(155);}
"pg_advisory_unlock" {return tt.getFunctionTokenType(156);}
"pg_advisory_unlock_all" {return tt.getFunctionTokenType(157);}
"pg_advisory_unlock_shared" {return tt.getFunctionTokenType(158);}
"pg_advisory_xact_lock" {return tt.getFunctionTokenType(159);}
"pg_advisory_xact_lock_shared" {return tt.getFunctionTokenType(160);}
"pg_backend_pid" {return tt.getFunctionTokenType(161);}
"pg_backup_start_time" {return tt.getFunctionTokenType(162);}
"pg_cancel_backend" {return tt.getFunctionTokenType(163);}
"pg_client_encoding" {return tt.getFunctionTokenType(164);}
"pg_collation_is_visible" {return tt.getFunctionTokenType(165);}
"pg_column_size" {return tt.getFunctionTokenType(166);}
"pg_conf_load_time" {return tt.getFunctionTokenType(167);}
"pg_conversion_is_visible" {return tt.getFunctionTokenType(168);}
"pg_create_restore_point" {return tt.getFunctionTokenType(169);}
"pg_current_xlog_insert_location" {return tt.getFunctionTokenType(170);}
"pg_current_xlog_location" {return tt.getFunctionTokenType(171);}
"pg_database_size" {return tt.getFunctionTokenType(172);}
"pg_describe_object" {return tt.getFunctionTokenType(173);}
"pg_export_snapshot" {return tt.getFunctionTokenType(174);}
"pg_function_is_visible" {return tt.getFunctionTokenType(175);}
"pg_get_constraintdef" {return tt.getFunctionTokenType(176);}
"pg_get_expr" {return tt.getFunctionTokenType(177);}
"pg_get_functiondef" {return tt.getFunctionTokenType(178);}
"pg_get_function_arguments" {return tt.getFunctionTokenType(179);}
"pg_get_function_identity_arguments" {return tt.getFunctionTokenType(180);}
"pg_get_function_result" {return tt.getFunctionTokenType(181);}
"pg_get_indexdef" {return tt.getFunctionTokenType(182);}
"pg_get_keywords" {return tt.getFunctionTokenType(183);}
"pg_get_ruledef" {return tt.getFunctionTokenType(184);}
"pg_get_serial_sequence" {return tt.getFunctionTokenType(185);}
"pg_get_triggerdef" {return tt.getFunctionTokenType(186);}
"pg_get_userbyid" {return tt.getFunctionTokenType(187);}
"pg_get_viewdef" {return tt.getFunctionTokenType(188);}
"pg_has_role" {return tt.getFunctionTokenType(189);}
"pg_identify_object" {return tt.getFunctionTokenType(190);}
"pg_indexes_size" {return tt.getFunctionTokenType(191);}
"pg_is_in_backup" {return tt.getFunctionTokenType(192);}
"pg_is_in_recovery" {return tt.getFunctionTokenType(193);}
"pg_is_other_temp_schema" {return tt.getFunctionTokenType(194);}
"pg_is_xlog_replay_paused" {return tt.getFunctionTokenType(195);}
"pg_last_xact_replay_timestamp" {return tt.getFunctionTokenType(196);}
"pg_last_xlog_receive_location" {return tt.getFunctionTokenType(197);}
"pg_last_xlog_replay_location" {return tt.getFunctionTokenType(198);}
"pg_listening_channels" {return tt.getFunctionTokenType(199);}
"pg_ls_dir" {return tt.getFunctionTokenType(200);}
"pg_my_temp_schema" {return tt.getFunctionTokenType(201);}
"pg_opclass_is_visible" {return tt.getFunctionTokenType(202);}
"pg_operator_is_visible" {return tt.getFunctionTokenType(203);}
"pg_opfamily_is_visible" {return tt.getFunctionTokenType(204);}
"pg_options_to_table" {return tt.getFunctionTokenType(205);}
"pg_postmaster_start_time" {return tt.getFunctionTokenType(206);}
"pg_read_binary_file" {return tt.getFunctionTokenType(207);}
"pg_read_file" {return tt.getFunctionTokenType(208);}
"pg_relation_filenode" {return tt.getFunctionTokenType(209);}
"pg_relation_filepath" {return tt.getFunctionTokenType(210);}
"pg_relation_size" {return tt.getFunctionTokenType(211);}
"pg_reload_conf" {return tt.getFunctionTokenType(212);}
"pg_rotate_logfile" {return tt.getFunctionTokenType(213);}
"pg_size_pretty" {return tt.getFunctionTokenType(214);}
"pg_start_backup" {return tt.getFunctionTokenType(215);}
"pg_stat_file" {return tt.getFunctionTokenType(216);}
"pg_stop_backup" {return tt.getFunctionTokenType(217);}
"pg_switch_xlog" {return tt.getFunctionTokenType(218);}
"pg_tablespace_databases" {return tt.getFunctionTokenType(219);}
"pg_tablespace_location" {return tt.getFunctionTokenType(220);}
"pg_tablespace_size" {return tt.getFunctionTokenType(221);}
"pg_table_is_visible" {return tt.getFunctionTokenType(222);}
"pg_table_size" {return tt.getFunctionTokenType(223);}
"pg_terminate_backend" {return tt.getFunctionTokenType(224);}
"pg_total_relation_size" {return tt.getFunctionTokenType(225);}
"pg_trigger_depth" {return tt.getFunctionTokenType(226);}
"pg_try_advisory_lock" {return tt.getFunctionTokenType(227);}
"pg_try_advisory_lock_shared" {return tt.getFunctionTokenType(228);}
"pg_try_advisory_xact_lock" {return tt.getFunctionTokenType(229);}
"pg_try_advisory_xact_lock_shared" {return tt.getFunctionTokenType(230);}
"pg_ts_config_is_visible" {return tt.getFunctionTokenType(231);}
"pg_ts_dict_is_visible" {return tt.getFunctionTokenType(232);}
"pg_ts_parser_is_visible" {return tt.getFunctionTokenType(233);}
"pg_ts_template_is_visible" {return tt.getFunctionTokenType(234);}
"pg_typeof" {return tt.getFunctionTokenType(235);}
"pg_type_is_visible" {return tt.getFunctionTokenType(236);}
"pg_xlogfile_name" {return tt.getFunctionTokenType(237);}
"pg_xlogfile_name_offset" {return tt.getFunctionTokenType(238);}
"pg_xlog_location_diff" {return tt.getFunctionTokenType(239);}
"pg_xlog_replay_pause" {return tt.getFunctionTokenType(240);}
"pg_xlog_replay_resume" {return tt.getFunctionTokenType(241);}
"pi" {return tt.getFunctionTokenType(242);}
"plainto_tsquery" {return tt.getFunctionTokenType(243);}
"popen" {return tt.getFunctionTokenType(244);}
"position" {return tt.getFunctionTokenType(245);}
"power" {return tt.getFunctionTokenType(246);}
"querytree" {return tt.getFunctionTokenType(247);}
"query_to_xml" {return tt.getFunctionTokenType(248);}
"quote_ident" {return tt.getFunctionTokenType(249);}
"quote_literal" {return tt.getFunctionTokenType(250);}
"quote_nullable" {return tt.getFunctionTokenType(251);}
"radians" {return tt.getFunctionTokenType(252);}
"radius" {return tt.getFunctionTokenType(253);}
"random" {return tt.getFunctionTokenType(254);}
"rank" {return tt.getFunctionTokenType(255);}
"regexp_matches" {return tt.getFunctionTokenType(256);}
"regexp_replace" {return tt.getFunctionTokenType(257);}
"regexp_split_to_array" {return tt.getFunctionTokenType(258);}
"regexp_split_to_table" {return tt.getFunctionTokenType(259);}
"repeat" {return tt.getFunctionTokenType(260);}
"replace" {return tt.getFunctionTokenType(261);}
"reverse" {return tt.getFunctionTokenType(262);}
"right" {return tt.getFunctionTokenType(263);}
"round" {return tt.getFunctionTokenType(264);}
"row_number" {return tt.getFunctionTokenType(265);}
"row_to_json" {return tt.getFunctionTokenType(266);}
"rpad" {return tt.getFunctionTokenType(267);}
"rtrim" {return tt.getFunctionTokenType(268);}
"session_user" {return tt.getFunctionTokenType(269);}
"setseed" {return tt.getFunctionTokenType(270);}
"setval" {return tt.getFunctionTokenType(271);}
"setweight" {return tt.getFunctionTokenType(272);}
"set_bit" {return tt.getFunctionTokenType(273);}
"set_byte" {return tt.getFunctionTokenType(274);}
"set_config" {return tt.getFunctionTokenType(275);}
"set_masklen" {return tt.getFunctionTokenType(276);}
"shobj_description" {return tt.getFunctionTokenType(277);}
"sign" {return tt.getFunctionTokenType(278);}
"sin" {return tt.getFunctionTokenType(279);}
"split_part" {return tt.getFunctionTokenType(280);}
"sqrt" {return tt.getFunctionTokenType(281);}
"statement_timestamp" {return tt.getFunctionTokenType(282);}
"string_agg" {return tt.getFunctionTokenType(283);}
"string_to_array" {return tt.getFunctionTokenType(284);}
"strip" {return tt.getFunctionTokenType(285);}
"strpos" {return tt.getFunctionTokenType(286);}
"substr" {return tt.getFunctionTokenType(287);}
"substring" {return tt.getFunctionTokenType(288);}
"sum" {return tt.getFunctionTokenType(289);}
"table_to_xml" {return tt.getFunctionTokenType(290);}
"tan" {return tt.getFunctionTokenType(291);}
"timeofday" {return tt.getFunctionTokenType(292);}
"to_ascii" {return tt.getFunctionTokenType(293);}
"to_char" {return tt.getFunctionTokenType(294);}
"to_date" {return tt.getFunctionTokenType(295);}
"to_hex" {return tt.getFunctionTokenType(296);}
"to_json" {return tt.getFunctionTokenType(297);}
"to_number" {return tt.getFunctionTokenType(298);}
"to_timestamp" {return tt.getFunctionTokenType(299);}
"to_tsquery" {return tt.getFunctionTokenType(300);}
"to_tsvector" {return tt.getFunctionTokenType(301);}
"transaction_timestamp" {return tt.getFunctionTokenType(302);}
"translate" {return tt.getFunctionTokenType(303);}
"trim" {return tt.getFunctionTokenType(304);}
"trunc" {return tt.getFunctionTokenType(305);}
"tsvector_update_trigger" {return tt.getFunctionTokenType(306);}
"tsvector_update_trigger_column" {return tt.getFunctionTokenType(307);}
"ts_headline" {return tt.getFunctionTokenType(308);}
"ts_rank" {return tt.getFunctionTokenType(309);}
"ts_rank_cd" {return tt.getFunctionTokenType(310);}
"ts_rewrite" {return tt.getFunctionTokenType(311);}
"txid_current" {return tt.getFunctionTokenType(312);}
"txid_current_snapshot" {return tt.getFunctionTokenType(313);}
"txid_snapshot_xip" {return tt.getFunctionTokenType(314);}
"txid_snapshot_xmax" {return tt.getFunctionTokenType(315);}
"txid_snapshot_xmin" {return tt.getFunctionTokenType(316);}
"txid_visible_in_snapshot" {return tt.getFunctionTokenType(317);}
"unnest" {return tt.getFunctionTokenType(318);}
"upper" {return tt.getFunctionTokenType(319);}
"upper_inc" {return tt.getFunctionTokenType(320);}
"upper_inf" {return tt.getFunctionTokenType(321);}
"user" {return tt.getFunctionTokenType(322);}
"version" {return tt.getFunctionTokenType(323);}
"width" {return tt.getFunctionTokenType(324);}
"width_bucket" {return tt.getFunctionTokenType(325);}
"xip_list" {return tt.getFunctionTokenType(326);}
"xmax" {return tt.getFunctionTokenType(327);}
"xmin" {return tt.getFunctionTokenType(328);}
"xmlagg" {return tt.getFunctionTokenType(329);}
"xmlcomment" {return tt.getFunctionTokenType(330);}
"xmlconcat" {return tt.getFunctionTokenType(331);}
"xmlelement" {return tt.getFunctionTokenType(332);}
"xmlexists" {return tt.getFunctionTokenType(333);}
"xmlforest" {return tt.getFunctionTokenType(334);}
"xmlpi" {return tt.getFunctionTokenType(335);}
"xmlroot" {return tt.getFunctionTokenType(336);}
"xml_is_well_formed" {return tt.getFunctionTokenType(337);}
"xpath" {return tt.getFunctionTokenType(338);}
"xpath_exists" {return tt.getFunctionTokenType(339);}





{IDENTIFIER}           { yybegin(YYINITIAL); return tt.getSharedTokenTypes().getIdentifier(); }
{QUOTED_IDENTIFIER}    { yybegin(YYINITIAL); return tt.getSharedTokenTypes().getQuotedIdentifier(); }

<YYINITIAL> {
    .                  { yybegin(YYINITIAL); return tt.getSharedTokenTypes().getIdentifier(); }
}
